/**
 * 公告详情 - 编辑页面
 * @author yaohuan
 * @date 2018/02/27
 */
define(function () {

    var self,
        app = win.app,
        doc = document,
        vueData = {
            list: [],
            checked: false,
            account: 0,
            activeName: ['1']
        },
        callObj
    ;

    var shopOrder = app.Module.extend({
            init: function () {
                self = this;
                self._super({
                    _tag: 'shopCar_order'
                }, win);

            },
            initData: function () {
                app.ajax({
                    xurl: 'admin/getGwcqData',
                    xdata: {},
                    cb: function (result) {
                        if (result.ok) {
                            vueData.list = result.data.data;
                            vueData.account = 0;
                        }
                    }
                });
            },

            _call: function (obj) {
                app.ajax({
                    xurl: 'admin/getGwcqData',
                    xdata: {},
                    cb: function (result) {
                        if (result.ok) {
                            vueData.list = result.data.data;
                        }
                    }
                });
                vueData.account = 0;
                vueData.list = obj;
            },
            _ready: function () {
                var vue = new Vue({
                    el: '#shopCar_order',
                    data: vueData,
                    methods: {
                        handleCheckAllChange: function (value) {
                            if (value == true) {
                                vueData.account = 0;
                            }
                            vueData.list.forEach(function (v) {
                                v.checked = value;
                                if (value == true) {
                                    vueData.account = vueData.account + v.count;
                                }
                            })
                            if (value == false) {
                                vueData.account = 0;
                            }
                        },
                        deleteData: function (item) {
                            app.confirm({
                                msg: '是否确定删除？',
                                ok: function () {
                                    app.ajax({
                                        xurl: 'admin/deleteGwcqBatch',
                                        xdata: item,
                                        cb: function (result) {
                                            if (result.ok) {
                                                self.initData();
                                            }
                                        }
                                    });
                                },
                                cancel: function () {
                                }
                            });
                        },
                        handleChange: function (val) {

                        },
                        handleEdit: function (index, row) {
                        },
                        handleDelete: function (index, row) {
                            if (row.GWCQ109 != '') {
                                if (row.GWDC004 == "1" && (row.GWDC005 == "1" || row.GWDC005 == "2")) {
                                    var GWDC020 = 0,
                                        GWDC021 = 0;
                                    var _xData = {};
                                    _xData = {GWCS109: row.GWCQ109, GWCS010: row.GWCQ010};
                                    if (row.GWDC005 == "2") {
                                        _xData.GWDC005 = row.GWDC005;
                                    }
                                    app.ajax({
                                        xurl: 'admin/getGwdc020_021',
                                        xdata: _xData,
                                        async: false,
                                        cb: function (rt) {
                                            if (rt.ok) {
                                                GWDC020 = rt.data.data.GWDC020;
                                                GWDC021 = rt.data.data.GWDC021;
                                                var GWCS003 = 0;
                                                if (row.GWDC004 == "1") {//组合
                                                    vueData.list.forEach(function (i) {
                                                        if (i.GWCQ010 == row.GWCQ010 && i.GWCQ109 == row.GWCQ109) {
                                                            i.data.forEach(function (v) {
                                                                if (v.GWCQDOCNO != row.GWCQDOCNO || v.GWCQSEQ != row.GWCQSEQ) {
                                                                    GWCS003 = GWCS003 + v.GWCQ003;
                                                                }
                                                            });
                                                        }
                                                    });
                                                }
                                                if (GWCS003 < GWDC020) {
                                                    app.showWarning('删除资料导致不满足促销活动，不允许删除');
                                                    return;
                                                    // app.confirm({
                                                    //     msg: '删除资料导致不满足促销活动，是否确定删除？',
                                                    //     ok: function () {
                                                    //         that.list.forEach(function (i) {
                                                    //             if (i.GWCQ010 == row.GWCQ010 && i.GWCQ109 == row.GWCQ109) {
                                                    //                 i.data.forEach(function (v) {
                                                    //                     if (v.GWCQDOCNO == row.GWCQDOCNO && v.GWCQSEQ == row.GWCQSEQ) {
                                                    //                         i.data.removeByMap({
                                                    //                             GWCQ001: v.GWCQ001
                                                    //                         });
                                                    //                         i.count = i.count - v.GWCQ005;
                                                    //                         app.ajax({
                                                    //                             xurl: 'base/gwai700/deleteGwcq',
                                                    //                             xdata: v,
                                                    //                             cb: function (result) {
                                                    //                                 if (result.ok) {
                                                    //
                                                    //                                 }
                                                    //                             }
                                                    //                         });
                                                    //                     }
                                                    //                 });
                                                    //             }
                                                    //         })
                                                    //     },
                                                    //     cancel: function () {
                                                    //     }
                                                    // });
                                                } else {
                                                    vueData.list.forEach(function (i) {
                                                        if (i.GWCQ010 == row.GWCQ010 && i.GWCQ109 == row.GWCQ109) {
                                                            i.data.forEach(function (v) {
                                                                if (v.GWCQDOCNO == row.GWCQDOCNO && v.GWCQSEQ == row.GWCQSEQ) {
                                                                    i.data.removeByMap({
                                                                        GWCQ001: v.GWCQ001
                                                                    });
                                                                    i.count = i.count - v.GWCQ005;
                                                                    app.ajax({
                                                                        xurl: 'admin/deleteGwcq',
                                                                        xdata: v,
                                                                        cb: function (result) {
                                                                            if (result.ok) {

                                                                            }
                                                                        }
                                                                    });
                                                                }
                                                            });
                                                        }
                                                    })
                                                }
                                            }
                                        }
                                    });
                                } else {
                                    vueData.list.forEach(function (i) {
                                        if (i.GWCQ010 == row.GWCQ010 && i.GWCQ109 == row.GWCQ109) {
                                            i.data.forEach(function (v) {
                                                if (v.GWCQDOCNO == row.GWCQDOCNO && v.GWCQSEQ == row.GWCQSEQ) {
                                                    i.data.removeByMap({
                                                        GWCQ001: v.GWCQ001
                                                    });
                                                    app.ajax({
                                                        xurl: 'admin/deleteGwcq',
                                                        xdata: v,
                                                        cb: function (result) {
                                                            if (result.ok) {

                                                            }
                                                        }
                                                    });
                                                }
                                            });
                                        }
                                    })
                                }
                            } else {
                                vueData.list.forEach(function (i) {
                                    if (i.GWCQ010 == row.GWCQ010 && i.GWCQ109 == row.GWCQ109) {
                                        i.data.forEach(function (v) {
                                            if (v.GWCQDOCNO == row.GWCQDOCNO && v.GWCQSEQ == row.GWCQSEQ) {
                                                i.data.removeByMap({
                                                    GWCQ001: v.GWCQ001
                                                });
                                                i.count = i.count - v.GWCQ005;
                                                app.ajax({
                                                    xurl: 'admin/deleteGwcq',
                                                    xdata: v,
                                                    cb: function (result) {
                                                        if (result.ok) {

                                                        }
                                                    }
                                                });
                                            }
                                        });
                                    }
                                })
                            }
                            self.initData();
                            vueData.list.forEach(function (i) {
                                if (i.data.length == 0) {
                                    vueData.list.removeByMap({
                                        GWCQ010: i.GWCQ010,
                                        GWCQ109: i.GWCQ109
                                    });
                                }

                            });
                        },
                        change1: function (item) {
                            var count1 = 0;
                            vueData.list.forEach(function (v) {
                                if(v.checked){
                                    count1++;
                                }
                                if (v.GWCQ010 == item.GWCQ010 && v.GWCQ109 == item.GWCQ109) {
                                    if (v.checked == false) {
                                        vueData.account = vueData.account - v.count;
                                    } else {
                                        vueData.account = vueData.account + v.count;
                                    }
                                }
                            });
                            if (item.checked == true) {
                                if (count1 == vueData.list.length) {
                                    vueData.checked = true;
                                } else {
                                    vueData.checked = false;
                                }
                            } else if (item.checked == false) {
                                vueData.checked = false;
                            }
                        },
                        saveData: function () {
                            var data = [];
                            var list1 = [];
                            var list2 = [];
                            var flag1 = true;
                            vueData.list.forEach(function (v) {
                                var sum_gwcs003 = 0;
                                var sum_gwcs005 = 0;
                                if (v.checked == true) {
                                    data.push(v);
                                    list1.push({
                                        "GWCS010": v.GWCQ010,
                                        "GWCS109": v.GWCQ109,
                                        "GWCS016": v.date
                                    });
                                    v.data.forEach(function (i) {
                                        if (v.GWCQ109 != '' && v.GWCQ109 != null) {
                                            //组合+满量
                                            if (v.GWDC005 == "4" && v.GWDC004 == "1") {
                                                sum_gwcs003 = math.add(sum_gwcs003, i.GWCQ003);
                                            }
                                            //组合+满额
                                            if (v.GWDC005 == "3" && v.GWDC004 == "1") {
                                                sum_gwcs005 = math.add(sum_gwcs005, i.GWCQ005);

                                            }
                                            //组合+裸价
                                            if (v.GWDC005 == "1" && v.GWDC004 == "1") {
                                                sum_gwcs005 = math.add(sum_gwcs005, i.GWCQ005);
                                                sum_gwcs003 = math.add(sum_gwcs003, i.GWCQ003);
                                            }
                                            //组合+特价
                                            if (v.GWDC005 == "2" && v.GWDC004 == "1") {
                                                sum_gwcs005 = math.add(sum_gwcs005, i.GWCQ005);
                                                sum_gwcs003 = math.add(sum_gwcs003, i.GWCQ003);
                                            }
                                            //非组合+满量
                                            if (v.GWDC005 == "4" && v.GWDC004 == "2") {
                                                sum_gwcs003 = math.add(sum_gwcs003, i.GWCQ003);
                                            }
                                            //非组合+满额
                                            if (v.GWDC005 == "3" && v.GWDC004 == "2") {
                                                sum_gwcs005 = math.add(sum_gwcs005, i.GWCQ005);
                                            }
                                            //非组合+裸价
                                            if (v.GWDC005 == "1" && v.GWDC004 == "2") {
                                                sum_gwcs005 = math.add(sum_gwcs005, i.GWCQ005);
                                                sum_gwcs003 = math.add(sum_gwcs003, i.GWCQ003);
                                            }
                                        }

                                    });
                                    var gwdc001 = '';
                                    var count = 0;
                                    var money = 0;
                                    for (var i = 0; i < data.length; i++) {
                                        var result = data[i];
                                        var gwdc025 = 0;
                                        var gwdc026 = 0;
                                        if (result.result.length > 0) {
                                            gwdc025 = result.result[0].GWDC025;
                                            gwdc026 = result.result[0].GWDC026;
                                            gwdc001 = result.result[0].GWDCZ001;
                                            var flag = 1;
                                            var j = 1;
                                            result.result.forEach(function (v) {
                                                if (v.num > 0) {
                                                    count = count + v.num;
                                                    money = money + math.mul(v.num, v.GWDCZ005);
                                                    list2.push({
                                                        "GWCSZ003": j,
                                                        "GWCSZ007": v.GWDCZ001,
                                                        "GWCSZ004": v.GWDCZ004,
                                                        "GWCSZ005": v.num,
                                                        "GWCSZ006": v.GWDCZ005,
                                                        "GWCSZ008": v.GWCS001
                                                    });
                                                    j++;
                                                }
                                            })
                                        }
                                        i++;
                                    }
                                    //组合+满量
                                    if (flag1) {
                                        if (v.GWDC005 == "4" && v.GWDC004 == "1") {
                                            app.ajax({
                                                xurl: 'admin/getGwcsz005_006',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCSDOCNO: '',
                                                    GWCS010: v.GWCQ010,
                                                    sum_gwcs003: sum_gwcs003
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        var GWDC020 = 0, GWDC021 = 0, GWDC025 = 0, GWDC026 = 0;
                                                        //首先判断订单单身是否满足起订数量
                                                        if (sum_gwcs003 < result.data.data.GWDC020) {
                                                            var msg = '活动编号' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '订单总数量不满足活动起订数量：' + result.data.data.GWDC020;
                                                            app.showWarning(msg);
                                                            flag1 = false;
                                                            return;
                                                        }
                                                        //如果活动设置的是最大可赠送金额
                                                        if (result.data.data.GWDC025 > 0) {
                                                            if (money > result.data.data.GWDC025) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠金额，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //如果活动设置的是最大可赠送数量
                                                        if (result.data.data.GWDC026 > 0) {
                                                            if (count > result.data.data.GWDC026) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠数量，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    //组合+满额
                                    if (flag1) {
                                        if (v.GWDC005 == "3" && v.GWDC004 == "1") {
                                            app.ajax({
                                                xurl: 'admin/getGwcsz005_006',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCSDOCNO: '',
                                                    GWCS010: v.GWCQ010,
                                                    sum_gwcs005: sum_gwcs005
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        //首先判断单身是否满足起订金额
                                                        if (sum_gwcs005 < result.data.data.GWDC021) {
                                                            var msg = '活动编号' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '订单总金额不满足活动起订金额：' + result.data.data.GWDC021;
                                                            app.showWarning(msg);
                                                            flag1 = false;
                                                            return;
                                                        }
                                                        //如果活动设置的是最大赠送金额
                                                        if (result.data.data.GWDC025 > 0) {
                                                            if (money > result.data.data.GWDC025) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠金额，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //如果活动设置的是最大赠送数量
                                                        if (result.data.data.GWDC026 > 0) {
                                                            if (count > result.data.data.GWDC026) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠数量，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    //非组合+满量
                                    if (flag1) {
                                        if (v.GWDC005 == "4" && v.GWDC004 == "2") {
                                            app.ajax({
                                                xurl: 'admin/getGwcsz005_006',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCSDOCNO: '',
                                                    GWCS001: i.GWCQ001,
                                                    GWCS010: v.GWCQ010,
                                                    sum_gwcs003: sum_gwcs003
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        var GWDC020 = 0, GWDC021 = 0, GWDC025 = 0, GWDC026 = 0;
                                                        //首先判断订单单身是否满足起订数量
                                                        if (sum_gwcs003 < result.data.data.GWDC020) {
                                                            var msg = '活动编号：' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '产品：' + v.GWCS001 + ',数量不满足活动起订数量：' + result.data.data.GWDC020;
                                                            app.showWarning(msg);
                                                            flag1 = false;
                                                            return;
                                                        }
                                                        //如果活动设置的是最大可赠送金额
                                                        if (result.data.data.GWDC025 > 0) {
                                                            if (money > result.data.data.GWDC025) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠金额，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //如果活动设置的是最大可赠送数量
                                                        if (result.data.data.GWDC026 > 0) {
                                                            if (count > result.data.data.GWDC026) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠数量，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    //非组合+满额
                                    if (flag1) {
                                        if (v.GWDC005 == "3" && v.GWDC004 == "2") {
                                            app.ajax({
                                                xurl: 'admin/getGwcsz005_006',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCSDOCNO: '',
                                                    GWCS001: i.GWCQ001,
                                                    GWCS010: v.GWCQ010,
                                                    sum_gwcs005: sum_gwcs005
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        //首先判断单身是否满足起订金额
                                                        if (sum_gwcs005 < result.data.data.GWDC021) {
                                                            var msg = '活动编号：' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '产品：' + v.GWCS001 + ',金额不满足活动起订金额：' + result.data.data.GWDC021;
                                                            app.showWarning(msg);
                                                            flag1 = false;
                                                            return;
                                                        }
                                                        //如果活动设置的是最大可赠送金额
                                                        if (result.data.data.GWDC025 > 0) {
                                                            if (money > result.data.data.GWDC025) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠金额，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //如果活动设置的是最大可赠送数量
                                                        if (result.data.data.GWDC026 > 0) {
                                                            if (count > result.data.data.GWDC026) {
                                                                var msg = '活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + '，赠品信息超过促销活动里最大可赠数量，请重新维护赠品信息或商品数量！';
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    //组合+裸价
                                    if (flag1) {
                                        if (v.GWDC005 == "1" && v.GWDC004 == "1") {
                                            app.ajax({
                                                xurl: 'admin/getGwdc020_021',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCS010: v.GWCQ010,
                                                    sum_gwcs005: sum_gwcs005
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        //首先判断单身是否满足起订数量
                                                        if (result.data.data.GWDC020 != null && result.data.data.GWDC020 != '') {
                                                            if (sum_gwcs003 < result.data.data.GWDC020) {
                                                                var msg = '组合活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + ',总数量不满足活动起订数量：' + result.data.data.GWDC020;
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //首先判断单身是否满足起订金额
                                                        if (result.data.data.GWDC021 != null && result.data.data.GWDC021 != '') {
                                                            if (sum_gwcs005 < result.data.data.GWDC021) {
                                                                var msg = '组合活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + ',总金额不满足活动起订金额：' + result.data.data.GWDC021;
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    //组合+特价
                                    if (flag1) {
                                        if (v.GWDC005 == "2" && v.GWDC004 == "1") {
                                            app.ajax({
                                                xurl: 'admin/getGwdc020_021',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCS010: v.GWCQ010,
                                                    sum_gwcs003: sum_gwcs003
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        //首先判断单身是否满足起订数量
                                                        if (result.data.data.GWDC020 != null && result.data.data.GWDC020 != '') {
                                                            if (sum_gwcs003 < result.data.data.GWDC020) {
                                                                var msg = '组合活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + ',总数量不满足活动起订数量：' + result.data.data.GWDC020;
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //首先判断单身是否满足起订金额
                                                        if (result.data.data.GWDC021 != null && result.data.data.GWDC021 != '') {
                                                            if (sum_gwcs005 < result.data.data.GWDC021) {
                                                                var msg = '组合活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + ',总金额不满足活动起订金额：' + result.data.data.GWDC021;
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                    //非组合+裸价
                                    if (flag1) {
                                        if (v.GWDC005 == "1" && v.GWDC004 == "2") {
                                            app.ajax({
                                                xurl: 'admin/getGwdc020_021',
                                                xdata: {
                                                    GWCS109: v.GWCQ109,
                                                    GWCS010: v.GWCQ010,
                                                    GWCS001: i.GWCQ001,
                                                    sum_gwcs005: sum_gwcs005
                                                },
                                                async: false,
                                                cb: function (result) {
                                                    if (result.ok) {
                                                        //首先判断单身是否满足起订数量
                                                        if (result.data.data.GWDC020 != null && result.data.data.GWDC020 != '') {
                                                            if (sum_gwcs003 < result.data.data.GWDC020) {
                                                                var msg = '非组合活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + ',总数量不满足活动起订数量：' + result.data.data.GWDC020;
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                        //首先判断单身是否满足起订金额
                                                        if (result.data.data.GWDC021 != null && result.data.data.GWDC021 != '') {
                                                            if (sum_gwcs005 < result.data.data.GWDC021) {
                                                                var msg = '非组合活动编号:' + v.GWCQ109 + '(' + v.GWDC003 + ')' + ',产品编号:' + v.GWCS001 + ',总金额不满足活动起订金额：' + result.data.data.GWDC021;
                                                                app.showWarning(msg);
                                                                flag1 = false;
                                                                return;
                                                            }
                                                        }
                                                    }
                                                }
                                            });
                                        }
                                    }
                                }
                            });
                            if (flag1 && list1.length > 0) {
                                app.ajax({
                                    xurl: 'admin/add',
                                    xdata: {list1: list1, list2: list2},
                                    toJsonStr: true,
                                    okmsg: '正式订单增加成功',
                                    cb: function (result) {
                                        if (result.ok) {
                                            self.initData();
                                        }
                                    }
                                });
                            }
                        },
                        cancel: function () {
                            vueData.checked = false;
                            self._closeTpl();
                        }
                    },
                    watch: {}
                    ,
                    created: function () {
                        self._setEleIsReady('shopCar_order');
                    }
                });
            },
            _lazy: function () {
                this._super();
            }
        })
    ;

    return new shopOrder();

})
;